#!/bin/bash

# 提示用户输入数据库连接信息
echo "请输入数据库的 host:"
read -p "Host: " db_host
echo "请输入数据库的 port:"
read -p "port: " db_port
echo "请输入数据库的 user:"
read -p "user: " db_user
echo "请输入数据库的 password:"
read -s -p "Password: " db_password
echo  # 换行

# 读取数据库列表
if [ ! -f mongodb_list ]; then
    echo "文件 mongodb_list 不存在!"
    exit 1
fi

# 逐行读取 mongodb_list 文件
while read db_name; do
    # 检查是否是空行或注释
    if [ -z "$db_name" ] || [[ "$db_name" =~ ^# ]]; then
        continue
    fi

    # 执行 mongodump 导出
    echo "正在导出数据库: $db_name ..."
    mongodump --host "$db_host" --port "$db_port" --username "$db_user" --password "$db_password" --authenticationDatabase admin --db "$db_name" --out ./mongo_dump

    if [ $? -eq 0 ]; then
        echo "数据库 $db_name 导出成功!"
    else
        echo "数据库 $db_name 导出失败!"
        continue
    fi

done < mongodb_list


# 打包并压缩导出的数据库文件夹
echo "正在打包并压缩数据库"
tar czf "mongo_dump.tar.gz" ./mongo_dump

if [ $? -eq 0 ]; then
    echo "数据库打包并压缩成功!"
else
    echo "数据库打包并压缩失败!"
fi

# 删除原始导出的文件夹
echo "删除原始文件夹"
rm -rf ./mongo_dump

if [ $? -eq 0 ]; then
    echo "原始文件夹删除成功!"
else
    echo "删除原始文件夹失败!"
fi